Amazon S3
Amazon Simple Storage Service (w skrócie S3) jest skalowalnym, wysokodostępnym i trwałym systemem przechowywania obiektów w chmurze, udostępnianym w ramach platformy Amazon Web Services (AWS). Usługa została uruchomiona w 2006 roku i od tego czasu stała się jedną z najpopularniejszych usług przechowywania danych na świecie.
Historia
Amazon S3 został ogłoszony pod koniec 2005 roku, a oficjalnie udostępniony publicznie w 2006 roku. Początkowo usługa była skierowana do deweloperów potrzebujących prostego sposobu na przechowywanie i pobieranie dużych ilości danych. Z biegiem lat wprowadzono szereg funkcji, takich jak wersjonowanie, polityki cyklu życia, czy klasy przechowywania dostosowane do różnych potrzeb kosztowych i wydajnościowych.
Architektura
Podstawowe elementy Amazon S3 to:
- Bucket (wiaderko) – logiczna kontenerka, w której przechowywane są obiekty. Każdy bucket posiada unikalną nazwę w skali globalnej.
- Obiekt (object) – dowolny plik (np. dokument, obraz, wideo) wraz z metadanymi. Każdy obiekt jest identyfikowany przez klucz (key) oraz wersję (jeśli włączono wersjonowanie).
- Klucz (key) – unikalny identyfikator obiektu w obrębie bucketu, często odzwierciedlający strukturę katalogów (np.
folder1/folder2/plik.txt). - Region – fizyczne położenie centrów danych, w których bucket jest przechowywany. Umożliwia to optymalizację opóźnień i spełnienie wymogów regulacyjnych.
Kluczowe cechy
- Trwałość i dostępność
- Amazon S3 zapewnia trwałość 99,999999999 % (11 dziewiątek) oraz dostępność na poziomie 99,9 % w standardowej klasie przechowywania.
- Skalowalność
- Usługa automatycznie dostosowuje się do rosnących potrzeb, umożliwiając przechowywanie nieograniczonej liczby obiektów i ich nieograniczonego rozmiaru (do 5 TB na pojedynczy obiekt).
- Bezpieczeństwo
- Obsługa szyfrowania po stronie serwera (SSE‑S3, SSE‑KMS) oraz szyfrowania po stronie klienta. Kontrola dostępu realizowana jest przez polityki bucketów, listy kontroli dostępu (ACL) oraz AWS IAM.
- Wersjonowanie
- Umożliwia przechowywanie wielu wersji tego samego obiektu, co zabezpiecza przed przypadkowym usunięciem lub nadpisaniem danych.
- Polityki cyklu życia
- Automatyzują przenoszenie obiektów do tańszych klas przechowywania (np. Glacier, Intelligent‑Tiering) lub ich trwałe usuwanie po określonym czasie.
- Event notifications
- S3 może generować powiadomienia (np. do AWS Lambda, Amazon SNS, Amazon SQS) w odpowiedzi na zdarzenia, takie jak wgranie nowego obiektu czy jego usunięcie.
- Klasy przechowywania
- Standard, Standard‑IA (Infrequent Access), One Zone‑IA, Intelligent‑Tiering, Glacier, Glacier Deep Archive – różnią się kosztami i czasem przywracania danych.
Typowe zastosowania
- Backup i archiwizacja danych.
- Hosting statycznych stron internetowych (hosting statycznych witryn).
- Data lake i hurtownie danych – współpraca z usługami takimi jak Amazon Redshift czy Amazon EMR.
- Przechowywanie mediów (zdjęcia, filmy, pliki audio) i streaming.
- Przesyłanie dużych plików (np. backup maszyn wirtualnych, obrazy dysków).
- Rozproszona wymiana danych pomiędzy aplikacjami i serwisami (np. Amazon EC2, Amazon EKS).
Integracja z innymi usługami AWS
Amazon S3 współpracuje z wieloma innymi komponentami ekosystemu AWS, co umożliwia tworzenie złożonych rozwiązań:
- Amazon EC2 – bezpośredni dostęp do danych z instancji wirtualnych.
- AWS Lambda – wyzwalanie funkcji w odpowiedzi na zdarzenia S3.
- Amazon CloudFront – dystrybucja treści z S3 na skalę globalną.
- AWS IAM – zarządzanie uprawnieniami i rolami.
- AWS CloudTrail – monitorowanie operacji i audyt.
- AWS Athena – zapytania SQL bezpośrednio na danych przechowywanych w S3.
Model cenowy
Cennik Amazon S3 opiera się na trzech głównych elementach:
- Przechowywanie – opłata za liczbę gigabajtów (GB) miesięcznie, różna w zależności od wybranej klasy.
- Transfer danych – opłaty za wychodzący transfer (outbound) z AWS do Internetu; transfer przychodzący (inbound) jest zazwyczaj bezpłatny.
- Operacje – koszty związane z wykonywaniem żądań (PUT, GET, LIST, DELETE itp.), podzielone na klasy „requests” i „data retrieval”.
Użytkownicy mogą korzystać z bezpłatnego poziomu (Free Tier) – 5 GB standardowego przechowywania oraz 20 000 żądań GET i 2 000 żądań PUT miesięcznie przez pierwsze 12 miesięcy.
Konkurencja
Na rynku istnieją inne rozwiązania oferujące podobną funkcjonalność:
- Microsoft Azure – Blob Storage.
- Google Cloud Platform – Cloud Storage.
- IBM Cloud Object Storage.
- Oracle Cloud Infrastructure Object Storage.
Zalety i ograniczenia
Zalety
- Wysoka trwałość i dostępność.
- Prosta struktura API (RESTful, SDK w wielu językach).
- Elastyczność kosztowa dzięki wielu klasom przechowywania.
- Rozbudowane mechanizmy bezpieczeństwa i kontroli dostępu.
- Ścisła integracja z ekosystemem AWS.
Ograniczenia
- Opóźnienia przy dostępie do najtańszych klas (np. Glacier – od kilku minut do kilku godzin).
- Opłaty za operacje i transfer danych mogą znacząco zwiększyć koszty przy intensywnym użytkowaniu.
- Model bezpieczeństwa wymaga starannej konfiguracji polityk IAM i bucketów – nieprawidłowe ustawienia mogą prowadzić do wycieków danych.